package main

import (
	"fmt"
	"os/exec"
	"time"
)

var (
	JobInterval int = 1800    // 30分钟 = 1800秒
	JobNumber   int = 48 * 100 // 100天（48次/天）
)

func main() {
	duration := time.Duration(JobInterval) * time.Second
	totalDays := JobNumber / 48  // 计算总天数
	dailyReminders := 48         // 每天提醒次数

	// 初始信息打印
	fmt.Println("办公休息提醒程序已启动")
	fmt.Println("==================================")
	fmt.Printf("提醒间隔\t: %d 分钟\n", JobInterval/60)
	fmt.Printf("每日提醒次数\t: %d 次\n", dailyReminders)
	fmt.Printf("计划运行时长\t: %d 天\n", totalDays)
	fmt.Printf("总提醒次数\t: %d 次\n", JobNumber)
	fmt.Println("==================================")

	for i := 0; i < JobNumber; i++ {
		current := i + 1                   // 当前进度
		day := (i / 48) + 1                // 当前天数（从1开始）
		count := (i % 48) + 1              // 当日第几次提醒
		remaining := JobNumber - current   // 剩余次数

		// 进度信息打印
		fmt.Printf("\n[第 %d 天] 进度 (%d/%d)\n", day, count, dailyReminders)
		fmt.Printf("系统时间: %s\n", time.Now().Format("2006-01-02 15:04:05"))
		fmt.Printf("总进度: %d/%d (剩余 %d 次)\n", 
			current, JobNumber, remaining)
		fmt.Printf("下次提醒将在 %.1f 分钟后...\n", float64(JobInterval)/60)

		// 等待间隔
		time.Sleep(duration)

		// 执行提醒
		psScript := `$wshell = New-Object -ComObject WScript.Shell; $wshell.Popup("请起身活动 5 分钟！", 0, "健康提醒", 64)`
		cmd := exec.Command("powershell", "-Command", psScript)
		
		if err := cmd.Run(); err != nil {
			fmt.Printf("[警告] 第 %d 天第 %d 次提醒失败: %v\n", day, count, err)
		} else {
			fmt.Printf("已成功执行第 %d 天第 %d 次提醒\n", day, count)
		}
	}

	fmt.Println("\n程序已完成所有提醒计划！")
}